﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace JA.Negocios
{
    public class LinkUtilVO
    {
        #region Constructors
        protected LinkUtilVO() { }

        public static LinkUtilVO CreateLinkUtilVO()
        {
            return new LinkUtilVO();
        }
        public static LinkUtilVO CreateLinkUtilVO(int idLinkUtil, string link = null, string url = null, bool ativo = true, DateTime cadastro = new DateTime(), string cadastradoPor = null, DateTime edicao = new DateTime(), string editadoPor = null)
        {
            return new LinkUtilVO
            {
                IdLinkUtil = idLinkUtil,
                Link = link,
                Url = url,
                Ativo = ativo,
                Cadastro = cadastro,
                CadastradoPor = cadastradoPor,
                Edicao = edicao,
                EditadoPor = editadoPor
            };
        }
        #endregion
        #region Members
        private int _idLinkUtil;
        private string _link;
        private string _url;
        private bool _ativo;
        private DateTime _cadastro;
        private string _cadastradoPor;
        private DateTime _edicao;
        private string _editadoPor;
        #endregion
        #region Properties
        public int IdLinkUtil
        {
            get { return this._idLinkUtil; }
            set { this._idLinkUtil = value; }
        }
        public string Link
        {
            get { return this._link; }
            set { this._link = value; }
        }
        public string Url
        {
            get { return this._url; }
            set
            {
                if (!value.Contains("http://") && !value.Contains("about:")) value = String.Format("http://{0}", value);
                this._url = value;
            }
        }
        public bool Ativo
        {
            get { return this._ativo; }
            set { this._ativo = value; }
        }
        public DateTime Cadastro
        {
            get { return this._cadastro; }
            set { this._cadastro = value; }
        }
        public string CadastradoPor
        {
            get { return this._cadastradoPor; }
            set { this._cadastradoPor = value; }
        }
        public DateTime Edicao
        {
            get { return this._edicao; }
            set { this._edicao = value; }
        }
        public string EditadoPor
        {
            get { return this._editadoPor; }
            set { this._editadoPor = value; }
        }
        #endregion
        #region Methods
        public override string ToString()
        {
            return this.Link;
        }
        #endregion
    }
}
